import request from '@/utils/request'
import axios from 'axios'
/**
 * 获取CronJob列表
 * @param {Object} query - 查询参数（如分页、筛选条件等）
 * @param {string} ns - 命名空间
 * @returns {Promise} - 返回请求的Promise对象
 */
export function getCronJobList(query, ns) {
  return request({
    url: `/cronjob/CronJobSelect/${ns}`,
    method: 'get',
    params: query
  })
}

/**
 * 创建 CronJob
 * @param {Object} payload - 请求体 { name, namespace, containername, schedule, image, command }
 * @returns {Promise}
 */
export function createCronJob(payload) {
  return request({
    url: '/cronjob/CronJobCreate',
    method: 'put',
    data: payload
  })
}

/**
 * 删除CronJob
 * @param {Object} params - 删除参数
 * @param {string} params.name - CronJob名称
 * @param {string} params.namespace - 命名空间
 * @returns {Promise} - 返回请求的Promise对象
 */
export function deleteCronJob(ns, name) {
  console.log(`🗑️ 直连后端删除: ${ns}/${name}`)

  return axios({
    url: `http://localhost:8082/cronjob/CronJobDelete/${ns}/${name}`,
    method: 'delete',
    timeout: 10000
  })
    .then(response => {
      console.log('✅ 删除成功:', response.data)
      return response.data
    })
    .catch(error => {
    // 修复错误处理，避免读取 undefined 的属性
      let errorMessage = '删除失败'

      if (error.response) {
      // 服务器响应了，但状态码不是 2xx
        errorMessage = `删除失败: ${error.response.status} - ${error.response.data?.message || error.response.statusText}`
      } else if (error.request) {
      // 请求已发送但没有收到响应
        errorMessage = '删除失败: 无法连接到服务器'
      } else {
      // 其他错误
        errorMessage = `删除失败: ${error.message}`
      }

      console.error('❌', errorMessage)
      throw new Error(errorMessage)
    })
}
/**
 * 修改CronJob
 * @param {Object} payload - 修改参数
 * @param {string} payload.name - CronJob名称
 * @param {string} payload.namespace - 命名空间
 * @param {string} [payload.image] - 镜像（可选）
 * @param {string} [payload.schedule] - 调度规则（可选）
 * @returns {Promise} - 返回请求的Promise对象
 */
export function updateCronJob(payload) {
  console.log('✏️ 直连后端更新:', payload)

  return axios({
    url: 'http://localhost:8082/cronjob/CronJobUpdate',
    method: 'post',
    data: payload,
    timeout: 10000
  })
    .then(response => {
      console.log('✅ 更新响应:', response.data)
      return response.data
    })
    .catch(error => {
      const errorMessage = error.message || '更新失败'
      console.error('❌', errorMessage)
      throw new Error(errorMessage)
    })
}
